// 这个巧妙的点是什么地方 
// 在于传入一个参数,需要返回一个函数,这个函数有个属性 可以把当前的函数里面的值都拿到
// 那就可以用到参数 每次都返回这个函数的调用 并且吧这个参数给新的函数 这样就完成了一次循环
function curry (...args) {
  let judge = (...arg) => {
    return curry(...args, ...arg)
  }
  judge.getSum = function () {
    let result = 0
    for (let i = 0; i < args.length; i++) {
      result += args[i]
    }
    return result
  }
  return judge
}
console.log(curry(1)(2)(3).getSum());
let addOne = curry(1)
console.log(addOne(2).getSum());
console.log(addOne(2).getSum());